//导入Mongo组件
const MongoClient = require('mongoDB').MongoClient;
//认证方式登入
var url = 'mongodb://myUserAdmin:abc123@127.0.0.1:27017/admin?authSource=admin';
//无认证URI
var uri = 'mongodb://127.0.0.1:27017/yang'
    //用户获取数据库中自动生成的ID
var ObjectID = require('mongoDB').ObjectID;
//实际代码中可以通过 new 一个所在的对象来访问这个ID  入new DB.ObjectID(前端获得的id)

//创建连接
//关于警告DeprecationWarning：不推荐使用当前的URL字符串解析器，将来的版本将删除它。 要使用新的解析器，请将选项{useNewUrlParser：true}传递给MongoClient.connect。的正确解决方法如下：
MongoClient.connect(uri, { useNewUrlParser: true }, (err, db) => {
    if (err) {

        console.log(err);
        console.log('MongoDB连接失败');
        throw err;
        return;
    }
    console.log('MongoDB已连接');
    //选择使用数据库
    var dbo = db.db('yang')

    //创建集合
    // dbase.createCollection('site', function (err, res) {
    //     if (err) throw err;
    //     console.log("创建集合!");
    //     db.close();
    // });


    //选择表  进行插入  insertMany()
    dbo.collection('user').insertOne({ "name": "菜鸟学院", "age": 18 }, (error, result) => {

        if (error) {
            console.log('添加数据失败')
            return;
        }
        //结果状态
        console.log("结果状态:" + result.result.ok)
        console.log("影响行数:" + result.result.n)
        console.log(result.ops)
        console.log('添加数据成功')
    })

    //查询find().sort()   find().limit()   find().count()  find().skip()
    dbo.collection('user').find({}).toArray((error, result) => {
        if (error) {
            console.log('查询数据失败')
            return;
        }
        //结果状态
        console.log(result);
        console.log('查询数据成功')

        db.close();
    })


    // //修改数据              updateMany
    // dbo.collection('user').updateOne({"name":"菜鸟学院"},{$set:{"name":"小帅"}},(error,result)=>{
    //     if(error){
    //         console.log('更新失败')
    //         return;
    //     }
    //     //结果状态
    //     console.log("结果状态:"+result.result.ok)
    //     console.log("影响行数:"+result.result.n)
    //     console.log(result)
    //     console.log('修改数据成功')

    // })
    // //删除数据              deleteMany()
    // dbo.collection('user').deleteOne({"name":"小帅","age":18},(error,obj)=>{
    //     if(error){
    //         console.log('删除失败')
    //         return;
    //     }

    //     //结果状态
    //     // console.log("结果状态:"+obj.result.ok)
    //     // console.log("影响行数:"+obj.result.n)
    //     console.log(obj)
    //     console.log('删除数据成功')
    // })


    //关闭数据库
    db.close();
})